import random

def generate_deck():
    suits = ['♠', '♥', '♣', '♦']
    ranks = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
    return [(suit, rank) for suit in suits for rank in ranks]

def shuffle_deck(deck):
    random.shuffle(deck)
    return deck

def deal_cards(deck):
    players = [[] for _ in range(4)]
    for i, card in enumerate(deck):
        players[i % 4].append(card)
    return players

def sort_cards(cards):
    suit_order = ['♥', '♠', '♦', '♣']
    rank_order = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'J', 'Q', 'K', 'A']
    return sorted(cards, key=lambda x: (suit_order.index(x[0]), rank_order.index(x[1])))

def deal_poker():
    deck = generate_deck()
    shuffled_deck = shuffle_deck(deck)
    hands = deal_cards(shuffled_deck)
    for i in range(4):
        hands[i] = sort_cards(hands[i])
    first = next((i for i, hand in enumerate(hands) if ('♣', '2') in hand), None)
    return hands, first